const Router = require('koa-router');
const router = new Router();
const demo_controller = require('./../../app/controllers/demo_controller');
const fs = require('fs')
const path = require('path')


// 返回静态数据
router.get('/', async (ctx, next) => {
  ctx.body = 'koa2 string'
  // ctx.render('index', {
  //     title: 'Hello Koa 2!'
  // })
})


// 文件上传处理函数 (多文件 & 单文件)
function updateFile(files, ctx) {
  if (Array.isArray(files)) {
    // 多文件上传
    for (let file of files) {
      // 创建可读流
      const reader = fs.createReadStream(file.path);
      let floder = path.join(__dirname, '../../upload/')
      let filePath = floder + `${file.name}`;

      if (!fs.existsSync(floder)) {  //判断staic/upload文件夹是否存在，如果不存在就新建一个
        fs.mkdirSync(floder)
      }
      const upStream = fs.createWriteStream(filePath);
      reader.pipe(upStream);
    }
    return ctx.body = "多文件上传成功！"
  } else {
    // 上传单个文件
    const file = ctx.request.files.file; // 获取上传文件
    // 创建可读流
    const reader = fs.createReadStream(file.path);
    let floder = path.join(__dirname, '../../upload/')
    let filePath = floder + `${file.name}`;

    if (!fs.existsSync(floder)) {  //判断staic/upload文件夹是否存在，如果不存在就新建一个
      fs.mkdirSync(floder)
    }
    const upStream = fs.createWriteStream(filePath);
    reader.pipe(upStream);
    return ctx.body = "上传成功！";
  }


}

router.post('/uploadfiles', async (ctx, next) => {
  // 上传多个文件
  const files = ctx.request.files.file; // 获取上传文件
  // console.log(files)
  updateFile(files, ctx)
});

// 返回 JSON 案例
router.get('/json', async (ctx, next) => {
  // console.log(ctx.request)
  ctx.body = [
    { data: 213, num: 444, age: 12 },
    { data: 456, num: 678, age: 13 }
  ]
})

router.post('/demo', demo_controller.demo);

module.exports = router;